Font architecture and creation tool for producing richer text

ABSTRACT

A method of creating a series of font characters ( 101 ) on a computer system ( 150 ) is disclosed. A series of font outlines ( 111 ) and source artwork ( 112 ); a series of manipulation tools ( 116 ) for the manipulation of aspects of the outlines and artwork. Such an arrangement provides for the creation of substantially arbitrarily complex font structures from the outlines, artwork and manipulation tools. A series of font characters is then formed through the application of the complex font structures to each of a base font outline in the series of font characters. Preferably, the complex font structures can comprise a graphical expression tree of operations ( 120 ) to be performed in the creation of a font and the tree includes an outline of a font character. The manipulation tools can include tools for distorting, replacing or compositing the outline of a font and can further include the tools for the application of morphological and non-morphological effects to the font outlines. A data structure for such font creation is also disclosed which includes records ( 90 - 97 ) of attributes of glyphs used to form the outlines including their shape, color, opacity and where appropriate compositing or blending with graphic object or pixel-based images.

FIELD OF THE INVENTION

[0001] The present invention relates to the field of digital imageprocessing and, in particular, to the creation of images havingcharacters or text in them so as to produce enhanced or superiorresulting image fonts. A tool for creating fonts having appealingartistic characteristics is also disclosed.

BACKGROUND OF THE INVENTION

[0002] Recently, it has become more and more popular to create compleximages through the utilisation of a computer system having a highresolution graphics display and a high resolution output printerpreferably of a color form. The graphic image production industry isundergoing a rapid development and complex and sophisticated imageproduction tools such as Adobe Photoshop (Trade Mark) are often utilisedfor the creation of complex images.

[0003] One important aesthetic quality of most images is a characterfont which conveys text. The design of character fonts is a complexprocess requiring sophisticated artistic judgements made by thedesigner. Traditionally, a font has consisted of a bitmap or an outline,the later typically being represented by spline data. The utilisation offont outlines often provides greater flexibility in scaling operationsin that the one font can be defined for many different sizes by means ofre-scaling of the spline data. Various designed fonts have becomeextremely popular, for example, Times New Roman, Courier etc.

[0004] Although fonts are well known and utilised in computer imagegeneration programs such as word processing programs, or higher endgraphics programs, they are generally lacking in one or more offlexibility, creativity and structure. As the user of the font must workwithin the pre-defined structure, this often leads to limited orblinkered artistic output results .

[0005] When designing a font, it is necessary to produce designs foreach and every character within a font set. This is a laborious and timeconsuming task, even for the Roman character set, and the languages towhich it applies. Further, when designing fonts for other languages, thenumber of characters within a character set can be extremely large (forexample, kanji characters) and hence significant work, labour andexpense is involved in the creation of font characters.

[0006] It follows that there is a need to provide a flexible andadaptable font structure which leads to increased levels of flexibilityand utilisation. It is also desirable for the font creation process tobe substantially automated, whilst still maintaining substantialartistic control over each character, thereby reducing the graphicdesigner's workload.

SUMMARY OF THE INVENTION

[0007] It is an object of the present invention to substantiallyovercome, or at least ameliorate, one or more deficiencies in existingarrangements.

[0008] In accordance with a first aspect of the present invention thereis provided a method of incorporating characters from a font into adocument or displaying them on a display medium, said font containing aplurality of glyphs, each glyph comprising one or more shapes, naturalor synthesised images, or other glyphs, said method comprising the stepsof:

[0009] (a) extracting description of one or more glyphs from the font;and

[0010] (b) rendering the characters onto a display medium or includingthem as part of a document description.

[0011] In accordance with a second aspect of the present invention thereis provided a font structure for use in an image creation systemcomprising a series of characters wherein each character is made up of acustomisable glyph structure, said glyph structure further comprising aseries of graphical objects which can be composited together in apredetermined order.

[0012] In accordance with a third aspect of the present invention, thereis provided a method of creating a series of font characters on acomputer system comprising providing a series of font outlines andsource artwork; providing a series of manipulation tools for themanipulation of aspects of the outlines and artwork; providing for thecreation of substantially arbitrarily complex font structures from theoutlines, artwork and manipulation tools; and creating the series offont characters through the application of the complex font structuresto each of a base font outline in the series of font characters.

[0013] Preferably, the complex font structures can comprise a graphicalexpression tree of operations to be performed in the creation of a fontand the tree includes an outline of a font character. The manipulationtools can include tools for distorting, replacing or compositing theoutline of a font and can further include the tools for the applicationof morphological and non-morphological effects to the font outlines.This includes graphical effects that are applied to a set of characteroutlines, while maintaining the font's readability.

[0014] Preferably, font outlines are:

[0015] (1) derived from existing fonts (eg. True Type);

[0016] (2) generated automatically from letter-form primitives;

[0017] (3) drawn by artists.

BRIEF DESCRIPTION OF THE DRAWINGS

[0018] Notwithstanding any other forms which may fall within the scopeof the present invention, a number of embodiments of the presentinvention will now be described, by way of example only, with referenceto the accompanying drawings in which:

[0019]FIG. 1 illustrates the structure of a character glyph utilising afirst embodiment;

[0020]FIG. 2 illustrates the process of deriving a glyph index from acharacter code;

[0021]FIG. 3 illustrates a layout of the Graphics Context Attributes;

[0022]FIG. 4 illustrates the usage of typesetting information;

[0023]FIG. 5 illustrates the file structure for storage of fonts inaccordance with the principles of the first embodiment;

[0024]FIG. 6 illustrate the process of GOB tree selection;

[0025]FIG. 7 illustrates a flow diagram of the steps in accessing a fontcharacter in accordance with the first embodiment;

[0026]FIG. 8 illustrates the process of producing a final character;

[0027]FIG. 9 illustrates multiple graphics contexts;

[0028]FIG. 10 illustrates setting attributes of a graphics context;

[0029]FIG. 11 illustrates an example font having interestingcharacteristic;

[0030]FIG. 12 illustrates an example gob tree structure for the font ofFIG. 11;

[0031]FIG. 13 illustrates an example user interface of a secondembodiment;

[0032]FIGS. 14 and 15 illustrate example categories for the constructionof manipulation tools in accordance with the second embodiment;

[0033]FIG. 16 is a schematic block diagram of a computer system in whichthe various embodiments of the present invention may be implemented; and

[0034]FIG. 17 is a flowchart of the font creation process according tothe preferred embodiment..

DESCRIPTION OF PREFERRED AND OTHER EMBODIMENTS Font Architecture

[0035] In the present embodiment, a font is represented by a series ofcharacter “glyphs”; a glyph being a sculptured character or symbol. Theglyphs have a complex structure which allows their utilisation in thecreation of images having much more complex characteristics.

[0036] Turning now to FIG. 1, there is illustrated schematically thestructure of a single glyph 1 of a font according to the presentembodiment. In storage, each glyph 1 has a corresponding glyph indexnumber (hereinafter glyph index) utilised to reference the overallglyph. If necessary, there may be one or more character codes orcharacters which map to a particular glyph index. Hence, the unit ofaccess of characters in the preferred embodiment is by glyph number. Theglyph 1 is a description of the visual appearance of a character and iscomposed of one or more graphical objects 2 which together form a treestructure seen in FIG. 1 describing the appearance of the charactercorresponding to the glyph index. Such a tree structure describing theappearance of a character is sometimes referred to herein as a graphicobject (GOB) tree.

[0037] In FIG. 2, there is illustrated a mapping 30 of a character code31 to a corresponding glyph index 32 which is carried out utilising aGlyph Mapping Table 30.

[0038] Each graphical object 2 typically includes various informationcomponents used in the reproduction of the glyph or font. Examples ofsuch components include Primitives, Attributes of primitives, Operatorsand Selection.

[0039] Primitives can be formed in a number of ways and are used tocharacterise an object shape. For example cubic spline paths may be usedto define the shape of objects (including character paths).Alternatively, image data in the form of pixel maps (which may or maynot be in a compressed format), may define the entire shape.

[0040] Attributes of primitives include various items that providecharacter and appeal to a primitive.

[0041]FIG. 3 illustrates a layout of Graphic Context Attributes, whichattributes can include:

[0042] color and color blend information 90;

[0043] opacity and opacity blend information 91;

[0044] edge blends of the edges of objects eg. 93,94;

[0045] one or more transformation matrices (not illustrated) to beapplied to paths and images; and

[0046] draw style 92 and stroking parameters for paths 95,96.

[0047] Binary Operators are used together for the compositing togetherof two or more graphical objects. These can include OVER, IN, OUT, ATOP,XOR, PLUSC, PLUSW and are discussed in the well known article,“Compositing Digital Images”, Porter, T; Duff, T; Computer Graphics Vol.18 No. 3, July 1984, pages 253-259. Other compositing operators includeNOT-XOR, PLUS, MINUS, AND, NAND, OR, NOR, NOT, CLEAR, SET, and COPY

[0048] Selection provides a choice of attached graphic objects based onthe present environment state.

[0049] It will be evident that any primitive utilised in a graphicsobject can be greatly parameterised. This means that the correspondingfeature can be referred to by altering a parameter in the graphicscontext and having the resulting value changed when the character isused. The decision to allow objects and features to be parameterisedprovides great flexibility in the hands of the font designer in thecreation of complex fonts. A default value is preferably provided foreach feature that is parameterised.

[0050] Returning to FIG. 1, graphics object having a selection choicecan form a node (eg. G01) of the GOB tree and such provides a method forselecting an object from a group of descendant graphics objects (eg.G02, G03) provided with the font, depending on a desired graphicalcontext. The selection can be achieved in conjunction with anyparameters in the graphics context. An example of the selection processis described below with reference to FIG. 6.

[0051] Parameters in primitives can be used as groups of settings to becombined to achieve a particular effect. In order to take advantage ofthis, the font as noted above may include a section for attributes. Theattribute section contains parameter settings that can be transferred tothe graphics context upon a user request.

[0052] Attributes in a glyph that can be affected (see FIG. 3) caninclude:

[0053] color;

[0054] opacity;

[0055] draw style;

[0056] stroke width;

[0057] line join style;

[0058] line cap style;

[0059] meter limit;

[0060] dash pattern; and

[0061] choice number.

[0062] All color and opacity values can preferably be parameterisedacross a whole font. This means that only a few colours need to bechosen to make a whole font appear color matched and there is freedomfor a font designer to use different parameters for each character ifthis is required. Each unique color value to be parametered can be takenfrom a different graphics context number (GC number) as shown in FIG. 9.

[0063] As shown in FIG. 4, each glyph 1 can have typesetting information40 for its vertical and horizontal typesetting directions taken from afont file. For example, the following can be provided:

[0064] horizontal typesetting position (x, y);

[0065] horizontal typesetting vector (dx, dy);

[0066] vertical typesetting position (x, y); and

[0067] vertical typesetting vector (dx, dy).

[0068] Through the utilization of the glyph structure 1 of FIG. 1,arbitrarily complex font structures can be created. A font can beproduced which contains vastly more information than a traditional fontand it therefore allows for much more detail in its appearance. However,traditional font characters can also be readily stored as glyphgraphical objects so there is flexibility to make them as simple or ascomplex as is required.

[0069] The glyph structure can therefore be adapted to be similar inoperation to a conventional font so that it can be used interchangeably.The extensions to a graphics language which allow the user to controlaspects of the appearance of characters in a glyph structure are purelyoptional.

[0070] The user is then able to customise the appearance of theresulting glyph characters to obtain a desired appearance. Each font hasa default “appearance” and the font designer can include arbitrarycustomisable parameters to allow the user to alter the defaultappearance to a custom appearance.

[0071] A font can therefore be created from glyphs 1 and stored in a“font file” 10 as shown in FIG. 5 which may contain the followingelements:

[0072] font header 11;

[0073] character code, glyph index and typesetting information 12 foreach character;

[0074] Kerning table 13;

[0075] Graphics Context attribute settings 14 for the Graphics Contextof the Font;

[0076] Tree structures 15 (or GOB trees) of graphical objects for eachglyph including pointers to shape 16 and image data 17;

[0077] Shape data 16; and

[0078] Image data 17.

[0079] The structure of a font from the user's point of view is as acollection of graphic objects 2, of which there are at least one perglyph 1. The graphic objects 2 can contain elements that are used inother graphic objects. Further mechanisms can be provided for alteringthe appearance of a graphic object by altering the Graphics Contextattributes 14. As illustrated in FIG. 6, by changing the choice numberand utilising the selection parameter in selection mechanism 50, it ispossible to obtain a wide variety of appearances for a single character.Customisation of parameters associated with the glyph can further givethe font a unique appearance.

[0080]FIG. 7 shows a process 20 that is implemented to process a fontcharacter in accordance with the present embodiment. The process 20includes the steps of reading the font file 21, creating 22 a textobject referring to the correct character, and producing a correspondingglyph 23 from the text object.

[0081] When the font file is read it can be converted to an internalrepresentation, for example a “cached” version, and the cached versionof the font can be utilised.

[0082]FIG. 8 illustrates the formation of a graphic object resultingfrom processing a GOB tree for each character. Graphical objects cancontain fully defined instances of characters and are accessed at step60 where a glyph tree is obtained. In step 61, all of the aspects of theappearance of the character(s) are fixed which permits the glyphattributes to be read. Conversion to a final graphical object at step 63involves applying in step 62 the read graphics context attributes to allparameters. This stage is where the user can exercise control over theappearance of characters.

[0083] One of the important features of the present font architecture isthat the font appearance can be customised by the user of the font. Theway this can be achieved is by setting the attributes in the graphicscontext (FIG. 3). Further, as illustrated in FIG. 9, the graphicscontext can be extended so that it has multiple instances 70-72, ratherthan just one. Each instance can be referred to by a graphics contextnumber (GC number). These can have all of the possible attributesavailable for the font and can be used to customise characters in thefont. The attributes at any GC number are initialised by setting them upat the base level of the graphics context (GC number 0) 70 and thencopying them to the new GC number. Alternatively, the attributes can beloaded from attributes in the font file as shown in FIG. 10. A graphicscontext at any GC number can be copied back to the base level. Forexample, the following commands can be used to support graphics contextnumbers:

[0084] 1. gc_copy(“attr-name”,gcnum) or

[0085] gc_copy(“attr-name”,gcnum1,gcnum2).

[0086] This command is used to copy an attribute (attr-name) from thegraphics context number zero (gcnum0 (70) to the number specified. Inthe second case, the attribute is copied from gcnum2 (72) to gcnum1(71).

[0087] 2. gc_swap(“attr-name”,gcnum) or

[0088] gc_swap(“attr-name”,gcnum1,gcnum2).

[0089] This command is used to swap an attribute (attr-name) from thegraphics context number zero with the number specified. In the secondcase the attribute is swapped between gcnum1 and gcnum2.

[0090] 3. gc_load_font_defaults( ).

[0091] As illustrated in FIG. 10, the gc_load_font_defaults command isused to set the attributes in the graphics context 81 from the defaultsin the font 80. In this case the attributes are typically loaded fromthe font file.

[0092] 4. gc_clear( ).

[0093] The gc_clear command is used to clear all of the graphicscontexts except for gcnum0.

Choice Number

[0094] An attribute described with reference to FIG. 3 and included inthe graphics context attributes is the choice number attribute 97. Thechoice number attribute 97 can be read during the processing of a fontcharacter file of FIG. 10. The choice number attribute is preferably anumeric value. The commands that affect choice number can include:

[0095] gc_choice_num(option). This command sets the choice number for GCnumber zero 70 to the (numeric) value specified. If the value specifiedis zero then this can be considered to be the default font option.

[0096] option=gc_choice_num( ). This command returns the value of thechoice number for GC number zero 70.

[0097] It can be seen from the foregoing description that a system offont creation is provided which offers substantially greater flexibilitythan that known in the prior art, and provides for arbitrarily complexfont structures. The font structures can be readily adaptable oramendable by the font creator or the font and user in accordance withrequirements.

Font Creation Tool

[0098] In this embodiment, a tool is provided for the creation ofsophisticated fonts which allow for the creation of a structure fromwhich fonts can be derived.

[0099] Although the principles of the instant embodiment have generalapplicability, and are in particular applicable to “bit map” generatedend fonts, the instant embodiment preferably utilises the fontarchitecture system described above. Of course, it is possible to createa font set for other characters utilising other complex image creationpackages such as Photoshop, especially when macro languages are utilisedwithin such packages.

[0100] Turning initially to FIG. 11, there is shown an example of acomplex font comprising the Times Roman character font “A” 101 which hasbeen manipulated so as to contain within its border a complex imagestructure comprising a background image 102 on top of which is placed aseries of round ball like objects 103.

[0101]FIG. 12, shows a corresponding “graphical object tree” (GOB) 105that might be created in accordance with the principles of theaforementioned specification corresponding for creating the fontcharacter 101. The expression tree 105 includes a number of operatorshaving operands which, together, are composited to create a final font.The compositing process can be performed in real time or rendered offline, depending on requirements. Amendments may be made to any part ofthe GOB tree 5. For example, it may be desirable to provide for the userto select which ball object 106 is placed within the font character 1depending on requirements. Hence the ball object 106 could comprise aclip art and could be selected from a list of different ball objects (abaseball for example) depending on the font creation characteristicsrequired.

[0102] Turning now to FIG. 13, there is illustrated one form of userinterface for a font creation tool 110 as constructed in accordance withthe instant embodiment. The font creation tool 110 can be implementedutilising standard software development tools such as Microsoft VisualC++ Developer's environment. The font creation tool 110 takes, as itsinput, font outlines which can be in the form of standard true typeoutlines 111 in addition to source artwork which can comprise images andclip art. The output of the font creation tool is a font set 113 whichcan correspond to a character set in accordance with requirements.Alternatively, for example, a full Unicode character set output can beprovided. The font creation tool 110 is based around a user interfacewhich includes a window 114 for viewing sample end fonts 115. The fontsare manipulated by a series of manipulation tools 116 which can beaccessed via a user interface list 117. The accessing of items in thelist 117 can result in a pop up window for the setting of manipulationtool variables in accordance with requirements. Additionally, a treeview panel 119 can be provided for the display and manipulation of GOBtrees 120. Additional user interfaces (not shown) can be provided forthe manipulation of the elements within the tree view 119 for thecreation of arbitrary trees so as to construct alternative fontarrangements.

[0103] Through the provision of a large range of manipulation tools 116,each tool having a number of independent variables which can be set, inaddition to the creation of arbitrarily complex GOB tree structures, ameans can be provided for the creation of a large number of fontstructures with the rapid testing of the independent variables so as toprovide for the most suitable end results, in which sample font isdisplayed in the font view window 114 for immediate appraisal. Ofcourse, the user interface of the preferred embodiment can be readilyadaptable and malleable in accordance with changing requirements andadded developments.

[0104] Ideally, the font character outline is utilised in, at least, oneportion of the tree view 119. Hence, an output font set 113 can becreated by means of substitution of the outline pass within the GOB tree120 for each character so as to produce a corresponding outputcharacter.

[0105] The manipulation tools 116 can be many and various. Themanipulation tools 116 can be divided into those which are nonmorphological (shape independent) and those which are morphological(shape dependant). Graphs of the subject groupings under each of thesetwo categories is illustrated in FIGS. 14 and 15. In FIG. 14, there isillustrated the non morphological categories 130 which can be furtherdivided into operations applied to the outline 131 of a font in additionto those applied to the texture or color of a font 132. The outlinemodifications can include distortions 134 such as applying outlineripples, altering the Fourier components or offsetting the fontsoutlines. Replacement 135 can include such things as replacing the fontoutline with a series of structure such as particles or ribbons orapplying a geometric substitution to the outline. Further, compositionof the outline 136 can comprise operations such as shadows and delayfunctions. Texture or color operations 132 can include the selection ofa substantial range of textures and colours for a particular font.

[0106] Turning now to FIG. 15, there is illustrated an example graph ofthe categories of morphological operations 140 which can be applied to afont. These can include both static operations 141 and dynamicoperations 142. The static operations 141 are shown divided intoholistic and stroke based operations. The holistic operations caninclude the application of three dimensional models to a font and theapplication of outline algorithms to a font. The stroked basedoperations can include image replacement and calligraphic operations.The dynamic operations 142 can be applied to the pen style, thestructure of growths on the font, 3D models of a font, image overlaysand any 2½ dimensional effects such as ribbons etc.

[0107] The outline of categories of FIG. 14 and FIG. 15 merelyrepresents some of the manipulations that can be applied to a font so asto produce interesting effects. Further, the manipulations can beapplied to sub-parts of a font and can be utilised in the constructionof the GOB expressions tree representing the font.

[0108] It will therefore be evident to those skilled in the art thatthrough the utilisation of an interface similar to that depictedschematically in FIG. 13, extremely complex and interesting effects canbe built up and tested on sample characters before the subsequentcreation of a complete font set. The utilisation of the GOB treestructure also allows for the creation of arbitrary complex graphicalimages which can then be suitably utilised in font creations.

[0109] The various embodiments of the present invention may be practicedusing a personal computer system 150 such as that shown in FIG. 16. Thecomputer system 150 includes a computer module 151, a video displaymonitor 154 and one or more input devices such as a mouse pointingdevice 153 and a keyboard 152, connected to the computer module 151..The computer system 150 may be connected to one or more other computers,a computer network such as a LAN, WAN or the Internet, using acommunication link 162 and an associated modem device 161, typically butnot necessarily arranged within the computer module 151. Further, any ofseveral types of hard copy reproduction output devices 164, includingplotters, printers, laser printers, may be connected to the computermodule 151 via an appropriate interface 163.

[0110] The computer module 155 has one or more central processing units(CPU or processor) 155, a memory module 156 including volatile randomaccess memory (RAM), static RAM or cache and read-only memory (ROM), andan input/output (I/O) interface 158 connected to the input devices 152,153. Storage device(s) 159 provide for non-volatile storage of data anda video interface/adaptor 157 connects to the video display monitor 154to provide video signals from the computer module 151 for display on thevideo display monitor 154. The storage device(s) 159 may comprise one ormore of a floppy disc, a hard disc drive, a magneto-optical disc drive,magnetic tape, CD-ROM and/or any other of a number of non-volatilestorage devices. The components 155 to 159 and 161 shown in FIG. 16 arecoupled to each other via a bus 160 typically including data, address,and control buses and interact to operate in a substantiallyconventional manner corresponding to known systems such as the IBM PC/ATor compatible arrangements, one of the Apple Macintosh (TM) family ofcomputers, Sun Sparcstation (TM), or the like. The overall structure andindividual components of the computer system 150 is essentiallyconventional and would be well known to persons skilled in the art.Thus, the system 150 is simply provided for illustrative purposes andother configurations can be employed without departing from the scopeand spirit of the invention.

[0111] The preferred embodiments typically operate as software runningon the computer system 150 and incorporate a series of instructionstypically resident in the storage device 159 (eg. hard disk) butnormally operative from the RAM 156. The software may alternatively besourced from the computer network and is operative under user control tovary character fonts interactively using the display monitor 154 and forreproduction purposes on the display monitor 154 or via the printer 164.

[0112] Font creation be achieved in a number of ways, one of which willnow be described with reference to FIGS. 13, 16 and 17. In thispreferred embodiment an application program running from the hard disk159 of the computer system 150 implements a method 200 which initiallyprompts the user to select a default font at step 202. This may, forexample as shown in FIG. 13 results in the selection of the Times NewRoman Font. The system then acts to display an exemplary character andits corresponding attributes and expression tree in the windows 114, 116and 119 respectively at step 204. Having presented the default font, theuser may then manipulate the attributes 117 within the window 116 and/orthe expression tree 120 to achieve a desired visual effect. Preferably,as manipulation occurs, the altered font is updated in the window 114permitting the user to observe the amendments, this being step 208. Ifthe user is not satisfied with the altered font displayed by theexemplary character, the method permits a return via path 214 to step206 where further manipulation may take place. If satisfied, in step 212the user acknowledges the new font which is then applied to allcharacters within the corresponding character set. In the illustratedexample, the outline shape off the Times New Roman character set is notaltered, but the color fill of the characters within the set is changedto reproduce a textured image over which are composited an arrangementof balls, as described above. The new character set is then madeavailable for general use at step 216, and this may include any one ormore of a plethora of uses of the font, for example to alter the textwithin a word processing document, or to create a banner over a documentdisplayed in a conventional font. The windows 110, 114, 116 and 119 arepreferably displayed on the video display 154 of the computer system 150and the new font may be stored for use on the hard disk 159 for example.Alternatively the new font may be used directly with the printing of thedesired document or made available to other computers via the computernetwork. The default font need not be a traditional font as such, butmay incorporate a data format corresponding to the new architecturedescribed above which thus permits corresponding new fonts to besupplied to the computer system 150, either via the network or by floppydisk for example. The user may then use those new fonts directly indocuments or alternatively amend the new fonts in the manner describedabove to produce further fonts.

[0113] It would be appreciated by a person skilled in the art thatnumerous variations and/or modifications may be made to the presentinvention as shown in the specific embodiments without departing fromthe spirit or scope of the invention as broadly described. The describedembodiments are, therefore, to be considered in all respects to beillustrative and not restrictive.

1. A method of incorporating characters from a font into a document ordisplaying them on a display medium, said font containing a plurality ofglyphs, each glyph can include shapes, natural or synthesised images, orother glyphs, said method comprising the steps of: (a) extractingdescription of one or more glyphs from the font; and (b) rendering thecharacters onto a display medium or including them as part of a documentdescription.
 2. A method according to claim 1, wherein the components ofsaid glyphs are organised into a graph data structure.
 3. A methodaccording to claim 2, wherein the components of said glyphs areorganised into a hierarchical structure.
 4. A method according to claim3, wherein the components of said glyphs are organised into a treestructure.
 5. A method according to claim 1, wherein characteristics ofsaid glyphs have the property that during rendering their value is setby: (a) the font and are as set by the glyph designer; or (b) the userof the font who has chosen to override the value set in the font.
 6. Amethod according to claim 1, wherein components of said glyph picturedescription are combined using compositing operators duringinstantiation.
 7. A method according to claim 6, wherein saidcompositing operators may operate on at least one component.
 8. A methodaccording to claim 7, wherein said compositing operators utilisetransparency values associated with said components of said glyphpicture description in forming the appearance of a glyph.
 9. A methodaccording to claim 7, wherein said compositing operator applied to aplurality of said components performs a selection of one of thecomponents during rendering, the determinant of the selection beingchosen by the user of the font.
 10. A method according to claims 7,wherein a compositing operator acting on two components performs anoperation on the color and/or transparency values, said operation beingselected from the group consisting of OVER, IN, OUT, ATOP, XOR, PLUS,MINUS, NOT-XOR, AND, NAND, OR, NOR, NOT, CLEAR, SET, and COPY.
 11. Amethod according to claim 7, wherein said compositing operator acting ona single said component performs a mapping of the color(s) of saidcomponent during rendering, the determinant of the mapping being acharacteristic of the font and having the properties described in claim5.
 12. A method according to claim 7, wherein said component of saidglyph picture description contains the shape of an outline.
 13. A methodaccording to claim 12, wherein said outline is one of: (a) filled; (b)stroked using a particular type of stroke style; or (c) both filled andstroked.
 14. A method according to claim 7, wherein said component ofsaid glyph contains the data required to represent a natural orsynthesised image, and said image contains color pixel values in anygamut recognisable by the rendering process.
 15. A method according toclaim 1, wherein said glyph contains said characteristics that apply toone or more of said components of the glyph, said components including:(a) color of the components, (b) amount of transparency, (c) method usedto fill the shapes, (d) width of the line stroking the shapes, (e) styleof the shape of the join when two lines meet, (f) style of the cap onthe end of lines, (g) limit on the length of the meter when a meteredjoin is present, (h) style of the dash pattern that may be applied tothe outline of the shape.
 16. A method according to claim 1, whereinsaid glyph containing said component refers to the shape of anotherglyph wherein said glyph is taken from another font.
 17. A fontstructure for use in an image creation system comprising a series ofcharacters wherein each character is made up of a customisable glyphstructure, said glyph structure further comprising a series of graphicalobjects which can be composited together in a predetermined order.
 18. Amethod of creating a series of font characters on a computer systemcomprising: providing a series of font outlines and source artwork;providing a series of manipulation tools for the manipulation of aspectsof said outlines and artwork; providing for the creation ofsubstantially arbitrarily complex font structures from said outlines,artwork and manipulation tools; and creating said series of fontcharacters through the application of said complex font structures toeach of a base font outline in said series of font characters.
 19. Amethod according to claim 18, wherein said complex font structurescomprise a graphical expression tree of operations to be performed inthe creation of a font.
 20. A method according to claim 19, wherein saidgraphical expression tree includes an outline of a font.
 21. A methodaccording to claim 18, wherein said manipulation tools include tools fordistorting, replacing or compositing the outline of a font.
 22. A methodaccording to claim 18, wherein said manipulation tools include tools forapplication of morphological effects to said font outlines.
 23. A methodaccording to claim 18, wherein said manipulation tools include tools forapplication of non-morphological effects to said font outlines. 24.Apparatus configured to implement the method of according to claim 18.25. A method of creating a font for a plurality of reproduciblecharacters, said method including the steps of: (a) providing aplurality of glyphs which together define outlines of said charactershaving shape characteristics of said font; (b) establishing a pluralityof records of font attributes; (c) associating (first) selected ones ofsaid records with (second) selected ones of said glyphs; and (d)manipulating said first selected records to alter a reproduction of saidsecond selected glyphs and hence characters reproduced therefrom.
 26. Amethod according to claim 25, wherein said font attributes includecharacteristics of reproduction of said outlines and filling materialfor reproduction in association within said outlines.
 27. A methodaccording to claim 26, wherein step (a) includes providing a pluralityof default glyphs associated with a font having first shapecharacteristics and step (d) includes manipulating said default glyphsto form a further font having second shape characteristics.
 28. A methodaccording to claim 27, wherein said manipulating said glyphs includesaltering at least one of color, an opacity a stroke width, a continuityof a stroke, a shape of a glyph, and a joining between any two glyphs.29. A method according to claim 26, wherein step (b) includes providinga plurality of default attributes associated with said filling materialof a font having first fill characteristics and step (d) includesmanipulating said default attributes of said filling material to form afurther font having second fill characteristics.
 30. A method accordingto claim 29, wherein said manipulating said filling material includesaltering at least one of a color and an opacity of said fillingmaterial.
 31. A method according to claim 30, wherein said alteringincludes forming a blend between glyphs.
 32. A method according to claim31, wherein said altering includes compositing colors together to forman image within said filling material.
 33. A method according to claim26, wherein outlines and filling material for each said character insaid font are defined by at least one graphical expression treeincluding at least one operator acting upon at least one said attributeand said character is reproducible by rendering said expression tree.34. A method according to claim 33, wherein said one attribute includesa predefined image, said predefined image being at least one of apixel-data image or a graphic object image.
 35. A method according toclaim 25, wherein said attributes are selected from the group consistingof color, opacity, draw style, stroke width, line joining style, linecap style, meter limit, dash pattern and choice number.
 36. A methodaccording to claim 35, wherein said choice number is used to augmentsaid font with image data.
 37. A data structure for a font having aplurality of reproducible characters, said data structure comprising: aplurality of glyphs each of which contribute to at least a shape of oneof said characters; each said glyph having a plurality of attributeswhich contribute to a reproduction of said glyph in corresponding onesof said characters, said attributes being alterable to thereby modify areproduction of said glyph in said corresponding characters.
 38. Amethod of manipulating a font having a plurality of reproduciblecharacters in a computer system, said font being described by aplurality of glyphs each of which contribute to at least a shape of oneof said characters; each said glyph having a plurality of attributeswhich contribute to a reproduction of said glyph in corresponding onesof said characters, said attributes being alterable to thereby modify areproduction of said glyph in said corresponding characters, said methodcomprising the steps of: (a) retrieving data corresponding to apredetermined default font and characters associated therewith includingcorresponding said glyphs and attributes; (b) manipulating selected onesof said attributes associated with selected ones of said glyphs to altersaid default font to provide a second font; and (c) reproducing at leastone character of said second font.
 39. A method according to claim 38,wherein step (a) includes reproducing in a first manner at least onecharacter of said default font, and step (b) includes interactivelyaltering the default font and reproducing said altered font in saidfirst manner until a final font is formed, and step (c) includesreproducing said final font in a second manner.
 40. A method accordingto claim 39, wherein reproducing in said first manner includesdisplaying said character on a video display associated with saidcomputer system.
 41. A method according to claim 39, wherein reproducingin said second manner includes at least one of displaying said characteron a video display associated with said computer system, printing saidcharacter with a printer associated with said system, or recording saidcharacter in a form suitable for subsequent reproduction.
 42. A computerreadable medium incorporating a computer program product having a seriesof instructions interpretable by a computer for creating a font for aplurality of characters, said medium including means for providing aplurality of glyphs which together define outlines of said charactershaving shape characteristics of said font; means for establishing aplurality of records of font attributes; means for associating (first)selected ones of said records with (second) selected ones of saidglyphs; and means for manipulating said first selected records to altera reproduction of said second selected glyphs and hence charactersreproduced therefrom.
 43. Apparatus for creating a font for a pluralityof characters, said apparatus comprising: means for providing aplurality of glyphs which together define outlines of said charactershaving shape characteristics of said font; means for establishing aplurality of records of font attributes; means for associating (first)selected ones of said records with (second) selected ones of saidglyphs; and means for manipulating said first selected records to altera reproduction of said second selected glyphs and hence charactersreproduced therefrom.